<#assign className = table.className>
<#assign classNameLower = className?uncap_first>
package ${basePackage}.converter;

import ${basePackage}.entity.${table.className};

import ${basePackage}.vo.${table.classNameLower}.${table.className}FindQueryRequestVo;
import ${basePackage}.vo.${table.classNameLower}.${table.className}InsertRequestVo;
import ${basePackage}.vo.${table.classNameLower}.${table.className}SelectQueryRequestVo;
import ${basePackage}.vo.${table.classNameLower}.${table.className}UpdateRequestVo;
import ${basePackage}.vo.${table.classNameLower}.${table.className}SelectQueryResponseVo;
import ${basePackage}.vo.${table.classNameLower}.${table.className}FindQueryResponseVo;
import ${basePackage}.vo.${table.classNameLower}.${table.className}DeleteRequestVo;

import ${basePackage}.dto.${table.classNameLower}.${table.className}FindQueryRequestDto;
import ${basePackage}.dto.${table.classNameLower}.${table.className}InsertRequestDto;
import ${basePackage}.dto.${table.classNameLower}.${table.className}SelectQueryRequestDto;
import ${basePackage}.dto.${table.classNameLower}.${table.className}UpdateRequestDto;
import ${basePackage}.dto.${table.classNameLower}.${table.className}FindQueryResponseDto;
import ${basePackage}.dto.${table.classNameLower}.${table.className}SelectQueryResponseDto;
import ${basePackage}.dto.${table.classNameLower}.${table.className}DeleteRequestDto;

import org.mapstruct.Mapper;

import java.util.List;

/**
 * <p>
 * ${table.remark} pojo转换器
 * </p>
 *
 * @author wangjin
 * @classname: ${className}
 * @description: ${table.remark} pojo转换器
 * @towork: none
 * @version: 1.0.0
 * @since ${.now?string('yyyy/MM/dd HH:mm')}
 */
@Mapper(componentModel ="spring")
public interface ${table.className}Converter {

    /**
     * 查询转换器vo-->dto
     *
     * @param ${table.className?uncap_first}SelectQueryRequestVo 查询数据视图对象VO
     * @return ${table.className}SelectQueryRequestDto实例
     */
    ${table.className}SelectQueryRequestDto selectQueryRequestVoToDto(${table.className}SelectQueryRequestVo ${table.className?uncap_first}SelectQueryRequestVo);

    /**
     * 查询转换器vo-->dto
     *
     * @param ${table.className?uncap_first}FindQueryRequestVo 查询数据视图对象VO
     * @return ${table.className}FindQueryRequestDto实例
     */
    ${table.className}FindQueryRequestDto findQueryRequestVoToDto(${table.className}FindQueryRequestVo ${table.className?uncap_first}FindQueryRequestVo);

    /**
     * 新增转换器vo-->dto
     *
     * @param ${table.className?uncap_first}InsertRequestVo 插入数据视图对象VO
     * @return ${table.className}InsertRequestDto实例
     */
    ${table.className}InsertRequestDto insertRequestVoToDto(${table.className}InsertRequestVo ${table.className?uncap_first}InsertRequestVo);

    /**
     * 更新转换器vo-->dto
     *
     * @param ${table.className?uncap_first}UpdateRequestVo 更新数据视图对象VO
     * @return ${table.className}UpdateRequestDto实例
     */
    ${table.className}UpdateRequestDto updateRequestVoToDto(${table.className}UpdateRequestVo ${table.className?uncap_first}UpdateRequestVo);

    /**
     * 删除转换器vo-->dto
     *
     * @param ${table.className?uncap_first}DeleteRequestVo 删除数据视图对象VO
     * @return ${table.className}DeleteRequestDto实例
     */
    ${table.className}DeleteRequestDto deleteRequestVoToDto(${table.className}DeleteRequestVo ${table.className?uncap_first}DeleteRequestVo);

    /**
     * 批量删除转换器vo-->dto
     *
     * @param ${table.className?uncap_first}DeleteRequestVoList 批量删除数据视图对象VO
     * @return ${table.className}DeleteRequestDto实例
     */
    List<${table.className}DeleteRequestDto> deleteRequestVoToDtoByBatch(List<${table.className}DeleteRequestVo> ${table.className?uncap_first}DeleteRequestVoList);

    /**
     * 查询转换器dto-->do
     *
     * @param ${table.className?uncap_first}SelectQueryRequestDto 查询数据视图对象Dto
     * @return ${table.className}
     * 实例
     */
    ${table.className} selectQueryRequestDtoToDo(${table.className}SelectQueryRequestDto ${table.className?uncap_first}SelectQueryRequestDto);

    /**
     * 查询转换器dto-->do
     *
     * @param ${table.className?uncap_first}FindQueryRequestDto 查询数据视图对象Dto
     * @return ${table.className}实例
     */
    ${table.className} findQueryRequestDtoToDo(${table.className}FindQueryRequestDto ${table.className?uncap_first}FindQueryRequestDto);

    /**
     * 新增转换器dto-->do
     *
     * @param ${table.className?uncap_first}InsertRequestDto 插入数据视图对象Dto
     * @return ${table.className}实例
     */
    ${table.className} insertRequestDtoToDo(${table.className}InsertRequestDto ${table.className?uncap_first}InsertRequestDto);

    /**
     * 更新转换器dto-->do
     *
     * @param ${table.className?uncap_first}UpdateRequestDto 更新数据视图对象Dto
     * @return ${table.className}实例
     */
    ${table.className} updateRequestDtoToDo(${table.className}UpdateRequestDto ${table.className?uncap_first}UpdateRequestDto);

    /**
     * 删除转换器dto-->do
     *
     * @param ${table.className?uncap_first}DeleteRequestDto 删除数据视图对象Dto
     * @return ${table.className}实例
     */
    ${table.className} deleteRequestDtoToDo(${table.className}DeleteRequestDto ${table.className?uncap_first}DeleteRequestDto);

    /**
     * 删除转换器dto-->do
     *
     * @param ${table.className?uncap_first}DeleteRequestDtoList 批量删除数据视图对象Dto
     * @return ${table.className}实例
     */
    List<${table.className}> deleteRequestDtoToDoByBatch(List<${table.className}DeleteRequestDto> ${table.className?uncap_first}DeleteRequestDtoList);

    /**
     * 查询转换器do-->dto
     *
     * @param ${table.className?uncap_first}List ${table.remark}实体类集合
     * @return ${table.className}SelectQueryResponseDoToDto实例
     */
    List<${table.className}SelectQueryResponseDto> selectQueryResponseDoToDto(List<${table.className}> ${table.className?uncap_first}List);

    /**
     * 查询转换器do-->dto
     *
     * @param ${table.className?uncap_first} ${table.remark}实体类
     * @return ${table.className}FindQueryResponseDto实例
     */
    ${table.className}FindQueryResponseDto findQueryResponseDoToDto(${table.className} ${table.className?uncap_first});

    /**
     * 查询转换器dto-->vo
     *
     * @param ${table.className?uncap_first}SelectQueryResponseDtoList 查询数据视图对象Dto集合
     * @return ${table.className}SelectQueryResponseVo实例
     * 实例
     */
    List<${table.className}SelectQueryResponseVo> selectQueryResponseDtoToVo(List<${table.className}SelectQueryResponseDto> ${table.className?uncap_first}SelectQueryResponseDtoList);

    /**
     * 查询转换器dto-->vo
     *
     * @param ${table.className?uncap_first}FindQueryResponseDto 查询数据视图对象Dto
     * @return ${table.className}FindQueryResponseVo实例
     */
    ${table.className}FindQueryResponseVo findQueryResponseDtoToVo(${table.className}FindQueryResponseDto ${table.className?uncap_first}FindQueryResponseDto);

}
